import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
//import com.baomidou.mybatisplus.generator.config.GlobalConfig;
//import com.baomidou.mybatisplus.generator.config.PackageConfig;
//import com.baomidou.mybatisplus.generator.config.StrategyConfig;
//import com.baomidou.mybatisplus.generator.config.po.TableFill;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.Arrays;
import java.util.List;

public class generator {

//    public static void main(String[] args) {
//        //创建对象
//        AutoGenerator autoGenerator = new AutoGenerator();
//        //数据源配置
//        DataSourceConfig dataSourceConfig = new DataSourceConfig();
//        // 数据库类型
//        dataSourceConfig.setDbType(DbType.MYSQL);
//        // url、用户名、密码
//        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/youdianda?useUnicode=true&characterEncoding=UTF-8");
//        dataSourceConfig.setUsername("root");
//        dataSourceConfig.setPassword("root");
//        //同样地，这里要注意mysql驱动的版本5.x
//        dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
//        autoGenerator.setDataSource(dataSourceConfig);
//
//        //全局配置
//        GlobalConfig globalConfig = new GlobalConfig();
//        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
//        globalConfig.setOpen(false);
//        globalConfig.setAuthor("TrainingL");
//        //去掉IService的I
//        globalConfig.setServiceName("%sService");
//        autoGenerator.setGlobalConfig(globalConfig);
//
//        //包信息
//        PackageConfig packageConfig = new PackageConfig();
//        packageConfig.setParent("com.itheima");
//        packageConfig.setEntity("pojo");
//        //有时候把持久层记为dao或repository
//        packageConfig.setMapper("mapper");
//        packageConfig.setService("service");
//        autoGenerator.setPackageInfo(packageConfig);
//
//        //策略配置
//        StrategyConfig strategyConfig = new StrategyConfig();
//        //设置要映射的表名（字符串用逗号隔开，多表）
//        strategyConfig.setInclude("sys_dict","sys_menu","sys_role","sys_role_menu","sys_user","ydd_advimg","ydd_advpos","ydd_article","ydd_cate","ydd_link","ydd_tag","ydd_user","ydd_user_data");
//        //设置生成实体类属性驼峰式命名
//        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
//        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
//        //给实体类加lombok注解
//        strategyConfig.setEntityLombokModel(true);
//        //自动填充配置
//        TableFill tableFill1 = new TableFill("create_time", FieldFill.INSERT);
//        TableFill tableFill2 = new TableFill("update_time", FieldFill.INSERT_UPDATE);
//        List<TableFill> list = Arrays.asList(tableFill1, tableFill2);
//        strategyConfig.setTableFillList(list);
//        //乐观锁
//        autoGenerator.setStrategy(strategyConfig);
//
//        //启动
//        autoGenerator.execute();
//    }
}
